"""
将购物车类改造成方便操作的容器类。
"""

# 购物车
class Cart:
    def __init__(self):
        self.lst = []  # 创建一个容器（列表）来放商品

    def __add__(self, other):
        self.lst.append(other)
        return self  # 这里返回的是实例本身

    # 增加打印
    def __repr__(self):
        return str(self.lst)

    # 返回长度
    def __len__(self):
        return len(self.lst)

    # 返回一个迭代对象
    def __iter__(self):
        return iter(self.lst)

    # 可以实现索引访问
    def __getitem__(self, item):
        return self.lst[item]

    # 可以实现索引添加
    def __setitem__(self, key, value):
        self.lst[key] = value
        return self


a = Cart()
a.__add__('apple')
a.__add__('banana')
print(a)

print(len(a))

for x in a:
    print(x)

print(a[0], a[1])

a[0] = 'pear'
print(a)
